Skip to content

perf: use Python 3.14#378

Open
bolinocroustibat wants to merge 7 commits intomainfrom
python-3.14
Open

perf: use Python 3.14#378
bolinocroustibat wants to merge 7 commits intomainfrom
python-3.14

Conversation

@bolinocroustibat
Copy link
Copy Markdown
Contributor

@bolinocroustibat bolinocroustibat commented Jan 19, 2026

Upgrading from Python 3.11 to 3.14 for performance gains on our pure-Python workloads.

Benchmark results (circleci, same runner, 4 runs for Python 3.14)

Test 3.11 mean 3.14 mean Speedup
CSV analysis 50.5s 29.2s 1.73× (+42%)
CSV → GeoJSON 299.9s 227.2s 1.32× (+24%)
PMTiles (tippecanoe, C++) 212.5s 207.8s ~1× (expected)

Results from the benchmarks branch. The PMTiles test acts as a negative control (C++ tool, unaffected by Python version), confirming the CSV gains might be real.

The 4 Python 3.14 runs are consistent: 28.41s, 29.23s, 28.49s, 30.51s (standard deviation of 0.97s).

A single 3.13 run on a different runner showed no improvement over 3.11 — not conclusive given the different setup, but it hints the gains may be specific to 3.14 which is consistent with what we can read on some performance reports.

The speedup could come from Python 3.14's interpreter improvements, which benefit csv-detective and dateparser (pure-Python workloads)?

@bolinocroustibat bolinocroustibat self-assigned this Jan 19, 2026
@bolinocroustibat bolinocroustibat force-pushed the python-3.14 branch 2 times, most recently from 1b2a234 to 6f34388 Compare January 19, 2026 13:14
@bolinocroustibat bolinocroustibat marked this pull request as draft January 19, 2026 13:39
@bolinocroustibat bolinocroustibat force-pushed the python-3.14 branch 2 times, most recently from 68929ce to af22889 Compare March 4, 2026 15:14
@bolinocroustibat bolinocroustibat marked this pull request as ready for review March 4, 2026 15:33
@bolinocroustibat bolinocroustibat changed the title chore: use Python 3.14 perf: use Python 3.14 Mar 4, 2026
Copy link
Copy Markdown
Contributor

@Pierlou Pierlou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well that was an easy review, thanks for the upgrade! We can try this on dev/demo ⚡

@bolinocroustibat
Copy link
Copy Markdown
Contributor Author

bolinocroustibat commented Apr 2, 2026

Well that was an easy review, thanks for the upgrade! We can try this on dev/demo ⚡

Waiting for the infra to be adapted to Python 3.14 first to be able to deploy, either by installing it on Debian (Debian Trixie ships Python 3.13 by default, not 3.14) and recreating a venv, either by refactoring the infra playbook to install Hydra via uv along the right Python version - @jordanguedj is on it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🛠 Doing

Development

Successfully merging this pull request may close these issues.

2 participants